package com.golden.procedure.service;

import java.util.Date;
import java.util.List;

import com.golden.procedure.domain.WorkSchedulingSettingDO;
import com.golden.procedure.domain.WorkSiteSeatDO;
import com.golden.procedure.query.SchedulingQueryDO;
import com.golden.procedure.result.ResultDO;

/**
 * 工位分组相关服务
 * <b>Description:设置服务区域、车辆、等级等，查询某一天的摄控安排</b><br>
 * 
 * @author Reading.Reagan</a>
 * @version 1.0
 * @Note <b>ProjectName:</b> procedure-api <br>
 *       <b>PackageName:</b> com.golden.procedure.service <br>
 *       <b>ClassName:</b> IWorkSiteSeatService <br>
 *       <b>Date:</b> 2018年9月25日 下午2:34:38
 */
public interface IWorkSiteSeatService {

	/**
	 * 查询上门组当天的摄控安排情况 <b>Description:</b><br>
	 * 
	 * @param queryDO
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 上午10:36:38 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO queryByDay(SchedulingQueryDO queryDO);

	/**
	 * 根据id获取分组信息
	* <b>Description:</b><br> 
	* @param id
	* @return
	* WorkSiteSeatDO 
	* @Note
	* <b>Author:</b> Reading.Reagan
	* <br><b>Date:</b> 2018年9月25日 下午2:36:29
	* <br><b>Version:</b> 1.0
	 */
	public WorkSiteSeatDO getSiteSeatByID(Integer id);

	/**
	 * 设置服务等级 <b>Description: 设置服务等级</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月17日 下午5:47:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO setServiceClass(WorkSiteSeatDO domain);

	/**
	 * 设置服务区域 <b>Description: 设置服务区域</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月17日 下午5:47:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO setRegion(WorkSiteSeatDO domain);

	/**
	 * 设置车辆 <b>Description: 同一天同一辆车可以分配两组</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月17日 下午5:47:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO setVechile(WorkSiteSeatDO domain);
	
	/**
	 * 通过ids批量删除分组(只删除分组) <b>Description: </b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月17日 下午5:47:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO delete(List<Integer> ids);
	
	/**
	 * 删除工位分组 <b>Description: </b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月17日 下午5:47:17 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO deleteGroup(WorkSchedulingSettingDO domain);

	/**
	 * 根据上门组及日期删除工位分组及席位 <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月26日 上午10:57:31 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO delBySiteScheduling(SchedulingQueryDO queryDO);
	
	/**
	 * 根据员工/部门查询工位分组及席位 <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月26日 上午10:57:31 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO queryByWorker(SchedulingQueryDO queryDO);

}
